package com.gxc.array;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * 给定两个数组A和B，若数组A的某个元素A[i]与数组B中某个元素B[j]满足 A[i] == B[j]，则寻找到一个值匹配的二元组(i,j)。 请统计在这两个数组A和B中，一共存在多少个这样的二元组。
 *
 * 输入描述
 * 第一行输入数组A的长度M
 * 第二行输入数组B的长度N
 * 第三行输入数组A的值
 * 第四行输入数组B的值
 * 备注： 若不存在相等的值，则输出0。 所采用的算法复杂度需小于O(N^2),否则会超时。 输入数组中允许出现重复数字，一个数字可以匹配多次。
 *
 * 输出描述
 * 输出匹配的二元组个数
 */
public class TwoTuple {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();

        Map<Integer, Integer> freqMap = new HashMap<>();
        for (int i = 0; i < a; i++) {
            int n = scanner.nextInt();
            freqMap.put(n, freqMap.getOrDefault(n, 0) + 1);
        }

        int res = 0;
        for (int i = 0; i < b; i++) {
            int n = scanner.nextInt();
            res += freqMap.getOrDefault(n, 0);
        }
        System.out.println(res);
    }
}
